package lx;

import java.util.ArrayList;
import java.util.Collections;
import java.util.Iterator;

public class demo3 {
    public static void main(String[] args) {
        /* 班级里有5个学生
        要求：
        被点到的学生不会再被点到。
        但是如果班级中所有的学生都点完了，需要重新开启第二轮点名。*/
        //1.定义集合
        ArrayList<String> list1 = new ArrayList<>();
        //2.添加数据
        Collections.addAll(list1, "范闲", "范建", "范统", "杜子腾", "杜琦燕", "宋合泛", "侯笼藤", "朱益群", "朱穆朗玛峰", "袁明媛");
        //创建一个临时的集合，用来存已经被点到学生的名字
        ArrayList<String> list2 = new ArrayList<>();

        for (int j = 1; j <= 10; j++) {
            Collections.shuffle(list1);
            Iterator<String> it = list1.iterator();
            System.out.println("=========第" + j + "轮点名开始了======================");
            while (it.hasNext()) {//当前迭代器对象指向地方是否有元素,默认指向0索引
                String s = it.next();//获取当前迭代器对象指向的元素,并且指针+1
                System.out.println(s);
                it.remove();//从迭代器指向的 collection 中移除迭代器返回的最后一个元素
                //说白了就是迭代器指向的前一个元素
                list2.add(s);
            }
            //此时表示一轮点名结束
            //list1 空了 list2 10个学生的名字
            list1.addAll(list2);
            list2.clear();
        }

    }
}
